package auditoryUIbk;
/*
 * Created on 2006-3-15
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
/*
 * Created on Dec 15, 2003
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */

//import java.beans.PropertyChangeListener;

/** Interface for gesture objects.  Note that clone() does a deep
    copy.  It emits propertyChangeEvents when any property changes
    (including author). */
public interface GestureObject extends Cloneable {
  /** emits property change for property AUTHOR_PROP */
  void setAuthor(String author);
  String getAuthor();
  /** emits property change for property ENABLED_PROP */
  void setEnabled(boolean on);
  boolean isEnabled();

  String PARENT_PROP = "parent";
  /** emits property change for property PARENT_PROP */
  /** Whether the GestureObject is enabled or not.  Should have value
      true or false.  (If not set, assumed it is enabled.)*/
  String ENABLED_PROP		= "enabled";
  String AUTHOR_PROP = "author";
  /** Returns whether the object has the current property set */
  boolean hasProperty(String name);
  /** Set the named property to a value.  Null is <strong>not</strong>
      allowed as a key <strong>or</strong> value. */
  void setProperty(String name, Object value);
  /** Get the value of the named property (or null if it is not set). */
  Object getProperty(String name);
  /** Unset the property.  Unsetting an already unset property has no
      effect.  Predefined properties (e.g., author and enabled) cannot
      be removed and attempting to do so will result in an error. */
  void unsetProperty(String name);
  
}